﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace CheckList
{
    public partial class formNowyEdytujKomplet : Form
    {
        private string trybPracy = "Nowy";
        private string id_komplet = null;
        private string id_program = null;
        public formNowyEdytujKomplet(string id_komplet_, string id_program_, string nazwaProgramu)
        {
            InitializeComponent();
            id_program = id_program_;
            

            try
            {
                if (id_komplet_ != null)
                {
                    DataRow oneRow = classConfig.getRow("SELECT top 1 * FROM komplet WHERE id_komplet = '" + id_komplet_ + "'", classConfig.sqlConnString);
                    this.textBoxNazwaKompletuPL.Text = oneRow["model"].ToString();
                    this.textBoxNazwaKompletuDE.Text = oneRow["model_de"].ToString();
                    id_komplet = id_komplet_;
                    trybPracy = "Edycja";
                }
                else
                {
                    this.textBoxNazwaKompletuPL.Text = nazwaProgramu;
                    this.textBoxNazwaKompletuDE.Text = nazwaProgramu;
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "Error - Edycja wyrobu", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void buttonOK_Click(object sender, EventArgs e)
        {
            try
            {
                if (this.textBoxNazwaKompletuPL.Text.Length == 0) throw new System.ArgumentException("Proszę podac nazwę kompletu PL");
                if (this.textBoxNazwaKompletuDE.Text.Length == 0) throw new System.ArgumentException("Proszę podac nazwę kompletu DE");
                if (trybPracy == "Nowy")
                {
                    string model_ = classConfig.getOne("SELECT top 1 model FROM komplet WHERE model = '" + this.textBoxNazwaKompletuPL.Text + "'", classConfig.sqlConnString);
                    if (model_ == this.textBoxNazwaKompletuPL.Text)
                           throw new System.ArgumentException("Dodawany komplet o tej nazwie już istnieje!");


                    string one = classConfig.getOne("SELECT top 1 id_komplet FROM komplet ORDER BY convert(integer, id_komplet) desc", classConfig.sqlConnString);
                    int id_komplet_ = Convert.ToInt16(one);
                    id_komplet_++;
                    string query = "INSERT INTO komplet (id_komplet,model,model_de,id_program) " +
                        " VALUES(" + id_komplet_ + ",'" + this.textBoxNazwaKompletuPL.Text + "','" + this.textBoxNazwaKompletuDE.Text +
                        "', " + id_program + " );";
                    classConfig.exec(query, classConfig.sqlConnString);
                }
                else if (trybPracy == "Edycja")
                {
                    string programIstnieje = classConfig.getOne("SELECT top 1 id_komplet FROM komplet WHERE model = '" + this.textBoxNazwaKompletuPL.Text + "' AND id_komplet != " + id_komplet, classConfig.sqlConnString);
                    if (programIstnieje != "")
                    {
                        throw new System.ArgumentException("Zmiana nazwy jest nie możliwa bo istniej juz komplet o takiej nazwie!");
                    }

                    string query = "UPDATE komplet SET model = '" + this.textBoxNazwaKompletuPL.Text + "',model_de = '" + this.textBoxNazwaKompletuDE.Text +
                        "' WHERE id_komplet = '" + id_komplet + "'";
                    classConfig.exec(query, classConfig.sqlConnString);
                }

                this.Close();
            }
            catch (Exception x)
            {
                MessageBox.Show(x.Message, "Error - Dodawanie nowego komplety", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void buttonNO_Click(object sender, EventArgs e)
        {

        }

        private void formNowyEdytujKomplet_Load(object sender, EventArgs e)
        {

        }
    }
}
